package com.java.producer_consumer;

/**
 * 消费者
 * 1、判断是否有数据
 * 2、若有数据则消费数据并唤醒生产者
 * 3、若无数据则等待
 */
public class Consumer extends Thread {
    @Override
    public void run() {
        while (true) {
            synchronized (Container.key) {
                if (Container.total == 0) {
                    break;
                }

                if (Container.dataCount == 0) {
                    // 在此处等待生产者生产好数据后的唤醒
                    try {
                        Container.key.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }

                Container.dataCount--;
                System.out.println("消费者消费，数据数量为" + Container.dataCount);
                Container.key.notifyAll();
            }
        }
    }
}
